﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BussinessLayer;
using DataAccessLayer.Entity;
namespace QLTSLienThong.Form_he_thong
{
    public partial class frmDanToc : Form
    {
        public frmDanToc()
        {
            InitializeComponent();
        }
        DanTocBussiness dantocBussiness = new DanTocBussiness();
        clsDanToc clsDT;
        object kq;
        private void Khoatext()
        {
            txtMaDanToc.ReadOnly = true;
            txtTenDanToc.ReadOnly = true;
            btnThemDanToc.BringToFront();
            btnSuaDanToc.BringToFront();
        }
        private void MoText()
        {
            txtTenDanToc.ReadOnly = false;
            txtMaDanToc.ReadOnly = false;
            btnSuaDanToc.SendToBack();
            btnThemDanToc.SendToBack();
        }
        private void XoaText()
        {
            txtMaDanToc.Clear();
            txtTenDanToc.Clear();
        }
        private void frmDanToc_Load(object sender, EventArgs e)
        {
            LoadDanTocLenForm();
        }
        private void LoadDanTocLenForm()
        {
            dtgDanToc.DataSource = dantocBussiness.LoadDanToc();
            LoadDuLieuLenFormTextBox();
            Khoatext();
        }
        private void btnHuyDanToc_Click(object sender, EventArgs e)
        {
            LoadDanTocLenForm();
        }

        private void btnLuuDanToc_Click(object sender, EventArgs e)
        {
            if (KiemTraDuLieuNhapVao())
            {
                if (_KiemTraThemDanToc)
                {
                    clsDT = new clsDanToc();
                    clsDT.MaDanToc = txtMaDanToc.Text.Trim();
                    clsDT.TenDanToc = txtTenDanToc.Text.Trim();
                    dantocBussiness.ThemDanToc(clsDT);
                    MessageBox.Show("Thêm thành công!","Thông báo");
                    LoadDanTocLenForm();
                }
                else
                {
                    clsDT = new clsDanToc();
                    clsDT.MaDanToc = txtMaDanToc.Text.Trim();
                    clsDT.TenDanToc = txtTenDanToc.Text.Trim();
                    dantocBussiness.SuaDanToc(clsDT);
                    MessageBox.Show("Sửa thành công!", "Thông báo");
                    LoadDanTocLenForm();
                }
            }
        }
        bool _KiemTraThemDanToc;
        private void btnSuaDanToc_Click(object sender, EventArgs e)
        {
            _KiemTraThemDanToc = false;
            txtTenDanToc.Focus();
            txtMaDanToc.ReadOnly = true;
            MoText();
        }

        private void btnThemDanToc_Click(object sender, EventArgs e)
        {
            _KiemTraThemDanToc = true;
            MoText();
            XoaText();
        }
        private void LoadDuLieuLenFormTextBox()
        {
            txtMaDanToc.DataBindings.Clear();
            txtMaDanToc.DataBindings.Add("Text",dtgDanToc.DataSource,"MaDT");
            txtTenDanToc.DataBindings.Clear();
            txtTenDanToc.DataBindings.Add("Text", dtgDanToc.DataSource, "TenDanToc");
        }
        bool KiemTraTonTaiMa = true;
        private bool KiemTraDuLieuNhapVao()
        {
            if (txtMaDanToc.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập mã dân tộc!","Thông báo!");
                txtMaDanToc.Focus();
                return false;
            }
            if (_KiemTraThemDanToc == false)
            {
                if (txtMaDanToc.Text.Trim() == dtgDanToc.CurrentRow.Cells["MaDT"].Value.ToString())
                {
                    KiemTraTonTaiMa = false;
                }
                if (txtTenDanToc.Text.Trim() == dtgDanToc.CurrentRow.Cells["TenDanToc"].Value.ToString())
                {
                    KiemTraTonTaiMa = false;
                }
            }
            if (KiemTraTonTaiMa == true)
            {
                clsDT = new clsDanToc();
                clsDT.MaDanToc = txtMaDanToc.Text.Trim();
                kq = dantocBussiness.KiemTraMa(clsDT);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Mã này đã tồn tài!", "Thông báo!");
                    txtMaDanToc.Focus();
                    return false;
                }
            }
            if (KiemTraTonTaiMa == true)
            {
                clsDT = new clsDanToc();
                clsDT.TenDanToc = txtTenDanToc.Text.Trim();
                kq = dantocBussiness.KiemTraTen(clsDT);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Tên dân tộc này đã tồn tài!", "Thông báo!");
                    txtTenDanToc.Focus();
                    return false;
                }
            }
            if (txtTenDanToc.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập tên dân tộc!", "Thông báo!");
                txtTenDanToc.Focus();
                return false;
            }
            return true;
        }

        private void btnXoaDanToc_Click(object sender, EventArgs e)
        {
            XoaDanToc();
        }

        private void XoaDanToc()
        {
            if (MessageBox.Show("Bạn muốn xóa mã dân tộc: " + txtMaDanToc.Text.Trim() + "?", "Thông báo!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                clsDT = new clsDanToc();
                clsDT.MaDanToc = txtMaDanToc.Text.Trim();
                dantocBussiness.XoaDanToc(clsDT);
                LoadDanTocLenForm();
            }
        }
    }
}
